package main

import "fmt"

// 集合是一组无序的元素的集合，集合中的元素不能重复。
// Map是一种无序的键值对的集合。

// Map集合的定义语法：
// map[KeyType]ValueType
// KeyType表示键的类型，ValueType表示值的类型。

// Map集合的创建：
// 1. 字面量创建：
// map1 := map[string]int{"apple": 5, "banana": 7, "orange": 3}
// 2. make()函数创建：
// map2 := make(map[string]int)
// 3. 遍历map：
// for key, value := range map1 {
//     fmt.Println(key, value)
// }

func main() {
    // 1. 字面量创建
    map1 := map[string]int{"apple": 5, "banana": 7, "orange": 3}
    fmt.Println(map1) // map[apple:5 banana:7 orange:3]

	map2 := make(map[string]int, 10)
	map2["apple"] = 5
	map2["banana"] = 7
	map2["orange"] = 3
	fmt.Println(map2) // map[apple:5 banana:7 orange:3]

	// 3. 遍历map
	for key, value := range map1 {
		fmt.Println(key, value)
	}

	for key, value := range map2 {
		fmt.Println(key, value)
	}

	// 4. 删除元素
	delete(map1, "banana")
	fmt.Println(map1) // map[apple:5 orange:3]

	// 5. 修改元素
	map1["apple"] = 6
	fmt.Println(map1) // map[apple:6 orange:3]

}